/*
 * pilha.c
 *
 *  Created on: 19/03/2011
 *      Author: thais
 */
#include <stdio.h>
#include <stdlib.h>

#include "pilha.h"

void overflow(){
	fprintf(stderr, "Erro, a pilha está cheia");
}

void underflow(){
	fprintf(stderr, "Erro, a pilha está vazia");

}

/* Procedimento para inserir um elemento x na pilha S */
void empilha(TipoDoElemento p, Pilha *s){
	s->topo++;
	if(s->topo == MAX)
		overflow (); /* a pilha ja esta cheia */
	else s->elementos[s->topo] = p;
}

/* Procedimento para remover um elemento na pilha S */
void desempilha (TipoDoElemento *p, Pilha *s){
	if(s->topo == -1) underflow (); /*a pilha esta vazia */
	else{
		*p = s->elementos [s->topo];
		s->topo --;
	}
}

void limpa(Pilha *s){
	s->topo = -1;
}

int vazia(Pilha *s){
	if(s->topo ==-1) return 1;
	else return 0;
}
